package reportehorario.modelo.dao;

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.Date;
import java.sql.ResultSet;
import java.util.ArrayList;
import reportehorario.conexion.ConectaDB;
import reportehorario.modelo.interfaces.EntradaDAO;
import reportehorario.recursos.beans.BeanEntradaXUsuarioXFecha;

public class MySQLEntradaDAO implements EntradaDAO {

    public ArrayList<BeanEntradaXUsuarioXFecha> obtenerEntradas(int idUsuario, Date fecha_ini, Date fecha_fin) throws Exception {
        BeanEntradaXUsuarioXFecha bean = null;
        ArrayList<BeanEntradaXUsuarioXFecha> lista = new ArrayList<BeanEntradaXUsuarioXFecha>();
        Connection conn = new ConectaDB().getAcceso();
        String store = "{call SP_CONSULTA_ENTRADAS_XRANGOFECHA(?,?,?)}";
        CallableStatement call = conn.prepareCall(store);
        call.setInt(1, idUsuario);
        call.setDate(2, fecha_ini);
        call.setDate(3, fecha_fin);
        
        ResultSet rs = call.executeQuery();

        while (rs.next()) {
            bean =  new BeanEntradaXUsuarioXFecha();
            bean.setIdUsuario(rs.getInt("idUsuario"));
            bean.setFecha(rs.getDate("fecha"));
            bean.setHora_entrada(rs.getTime("hora_entrada"));
            bean.setEstado(rs.getBoolean("estado"));
            bean.setTipo_justificacion(rs.getInt("tipo_justificacion"));
            bean.setOtro_justificacion(rs.getString("otro_justificacion"));
            lista.add(bean);
        }
        call.close();
        conn.close();
        return lista;
    }
}
